Setup

library(dplyr)
library(sf)
library(readr)
library(mapview)
mapviewOptions(fgb=FALSE)
library(Rspatialworkshop)
library(ggplot2)
library(leaflet)
library(httr)

Queyring WFS

Just to show scope of different things we can do linking to REST Services as well - here are links to a couple examples- spatial wfs services and accessing arcgis rest services

We can actually use REST services for equivalent WMS layers we displayed in maps above! See National Map Services page

We can get a listing of all ESRI REST services here

Query all Native Lands WFS

url <- parse_url("https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services")
url$path <- paste(url$path, "Native_Lands_New/FeatureServer/2/query", sep = "/")
url$query <- list(where = "1=1",
                  outFields = "*",
                  returnGeometry = "true",
                  f = "geojson")
request <- build_url(url)


NativeLand <- read_sf(request)

mapview(NativeLand, col.regions='green',map.types = "OpenStreetMap")

Query Trails WFS

REST service and a query for ‘Pacific Crest National Scenic Trail’ - bonus add a default topography brackground with it

url <- parse_url("https://carto.nationalmap.gov/arcgis/rest/services")
url$path <- paste(url$path, "transportation/MapServer/37/query", sep = "/")
url$query <- list(where = "Name = 'Pacific Crest National Scenic Trail'",
                  outFields = "*",
                  returnGeometry = "true",
                  f = "json")
request <- build_url(url)

PCT <- read_sf(request)

mapview(PCT, color='dark green',map.types = "OpenTopoMap")
LS0tDQp0aXRsZTogIldGUyBNYXBzIg0KYXV0aG9yOiAiTWFyYyBXZWJlciINCmRhdGU6ICJgciBmb3JtYXQoU3lzLnRpbWUoKSwgJyVkICVCLCAlWScpYCINCm91dHB1dDoNCiAgaHRtbF9ub3RlYm9vazoNCiAgICB0aGVtZTogc2FuZHN0b25lDQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZmxvYXQ6IHllcw0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogeWVzDQogICAgZGZfcHJpbnQ6IHBhZ2VkDQplZGl0b3Jfb3B0aW9uczogDQogIGNodW5rX291dHB1dF90eXBlOiBpbmxpbmUNCi0tLQ0KDQojIyBTZXR1cA0KYGBge3IsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9DQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShzZikNCmxpYnJhcnkocmVhZHIpDQpsaWJyYXJ5KG1hcHZpZXcpDQptYXB2aWV3T3B0aW9ucyhmZ2I9RkFMU0UpDQpsaWJyYXJ5KFJzcGF0aWFsd29ya3Nob3ApDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KGxlYWZsZXQpDQpsaWJyYXJ5KGh0dHIpDQpgYGANCg0KDQojIyBRdWV5cmluZyBXRlMNCkp1c3QgdG8gc2hvdyBzY29wZSBvZiBkaWZmZXJlbnQgdGhpbmdzIHdlIGNhbiBkbyBsaW5raW5nIHRvIFJFU1QgU2VydmljZXMgYXMgd2VsbCAtIGhlcmUgYXJlIGxpbmtzIHRvIGEgY291cGxlIGV4YW1wbGVzLQ0KW3NwYXRpYWwgd2ZzIHNlcnZpY2VzXShodHRwczovL2luYm8uZ2l0aHViLmlvL3R1dG9yaWFscy90dXRvcmlhbHMvc3BhdGlhbF93ZnNfc2VydmljZXMvKSBhbmQgDQpbYWNjZXNzaW5nIGFyY2dpcyByZXN0IHNlcnZpY2VzXShodHRwczovL2NvbW11bml0eS5lc3JpLmNvbS90NS9naXMtYmxvZy9hY2Nlc3NpbmctYXJjZ2lzLXJlc3Qtc2VydmljZXMtdXNpbmctci9iYS1wLzg5ODQ1MSkNCg0KV2UgY2FuIGFjdHVhbGx5IHVzZSBSRVNUIHNlcnZpY2VzIGZvciBlcXVpdmFsZW50IFdNUyBsYXllcnMgd2UgZGlzcGxheWVkIGluIG1hcHMgYWJvdmUhDQpTZWUgW05hdGlvbmFsIE1hcCBTZXJ2aWNlcyBwYWdlXShodHRwczovL2FwcHMubmF0aW9uYWxtYXAuZ292L3NlcnZpY2VzLykNCg0KV2UgY2FuIGdldCBhIGxpc3Rpbmcgb2YgYWxsIEVTUkkgUkVTVCBzZXJ2aWNlcyBbaGVyZV0oaHR0cHM6Ly9zZXJ2aWNlcy5hcmNnaXMuY29tL1AzZVBMTVlzMlJWQ2hrSngvQXJjR0lTL3Jlc3Qvc2VydmljZXMpDQoNCiMjIyBRdWVyeSBhbGwgTmF0aXZlIExhbmRzIFdGUw0KYGBge3J9DQp1cmwgPC0gcGFyc2VfdXJsKCJodHRwczovL3NlcnZpY2VzLmFyY2dpcy5jb20vUDNlUExNWXMyUlZDaGtKeC9hcmNnaXMvcmVzdC9zZXJ2aWNlcyIpDQp1cmwkcGF0aCA8LSBwYXN0ZSh1cmwkcGF0aCwgIk5hdGl2ZV9MYW5kc19OZXcvRmVhdHVyZVNlcnZlci8yL3F1ZXJ5Iiwgc2VwID0gIi8iKQ0KdXJsJHF1ZXJ5IDwtIGxpc3Qod2hlcmUgPSAiMT0xIiwNCiAgICAgICAgICAgICAgICAgIG91dEZpZWxkcyA9ICIqIiwNCiAgICAgICAgICAgICAgICAgIHJldHVybkdlb21ldHJ5ID0gInRydWUiLA0KICAgICAgICAgICAgICAgICAgZiA9ICJnZW9qc29uIikNCnJlcXVlc3QgPC0gYnVpbGRfdXJsKHVybCkNCg0KDQpOYXRpdmVMYW5kIDwtIHJlYWRfc2YocmVxdWVzdCkNCg0KbWFwdmlldyhOYXRpdmVMYW5kLCBjb2wucmVnaW9ucz0nZ3JlZW4nLG1hcC50eXBlcyA9ICJPcGVuU3RyZWV0TWFwIikNCmBgYA0KDQojIyMgUXVlcnkgVHJhaWxzIFdGUw0KUkVTVCBzZXJ2aWNlIGFuZCBhIHF1ZXJ5IGZvciAnUGFjaWZpYyBDcmVzdCBOYXRpb25hbCBTY2VuaWMgVHJhaWwnIC0gYm9udXMgYWRkIGEgZGVmYXVsdCB0b3BvZ3JhcGh5IGJyYWNrZ3JvdW5kIHdpdGggaXQNCmBgYHtyfQ0KdXJsIDwtIHBhcnNlX3VybCgiaHR0cHM6Ly9jYXJ0by5uYXRpb25hbG1hcC5nb3YvYXJjZ2lzL3Jlc3Qvc2VydmljZXMiKQ0KdXJsJHBhdGggPC0gcGFzdGUodXJsJHBhdGgsICJ0cmFuc3BvcnRhdGlvbi9NYXBTZXJ2ZXIvMzcvcXVlcnkiLCBzZXAgPSAiLyIpDQp1cmwkcXVlcnkgPC0gbGlzdCh3aGVyZSA9ICJOYW1lID0gJ1BhY2lmaWMgQ3Jlc3QgTmF0aW9uYWwgU2NlbmljIFRyYWlsJyIsDQogICAgICAgICAgICAgICAgICBvdXRGaWVsZHMgPSAiKiIsDQogICAgICAgICAgICAgICAgICByZXR1cm5HZW9tZXRyeSA9ICJ0cnVlIiwNCiAgICAgICAgICAgICAgICAgIGYgPSAianNvbiIpDQpyZXF1ZXN0IDwtIGJ1aWxkX3VybCh1cmwpDQoNClBDVCA8LSByZWFkX3NmKHJlcXVlc3QpDQoNCm1hcHZpZXcoUENULCBjb2xvcj0nZGFyayBncmVlbicsbWFwLnR5cGVzID0gIk9wZW5Ub3BvTWFwIikNCmBgYA==